#ifndef GAMELOGIC_OBJECTS_FACTORY_H_
#define GAMELOGIC_OBJECTS_FACTORY_H_

#include "./GameObject.h"

namespace GameLogic {
namespace Objects {

/**
 * Fabryka obiektow gry. Pozwala na tworzenie obiektow na podstawie id, ktore jednoznacznie okresla
 * m.in. jakiego typu ma byc tworzony obiekt.
 */
class Factory {

	Factory();

	~Factory();

public:

	static Factory& getInstance() {
		static Factory instance;
		return instance;
	}

	GameObject* createObject( GameObject::IdType id, Data* data );

};

} //namespace Level
} //namespace Objects

#endif /* GAMELOGIC_OBJECTS_FACTORY_H_ */
